﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sinacor.Infra.Core.Licensing
{
    [Serializable]
    public class Company : ICloneable 
    {
		string _name;
		string _legalRegistrationId;
		int? _companyId;
		int? _sinacorCompanyId;
		List<Module> _modules;

		public string Name
		{
			get { return _name; }
			set { _name = value; }
		}
		public string LegalRegistrationId
		{
			get { return _legalRegistrationId; }
			set { _legalRegistrationId = value; }
		}
		public int? CompanyId
		{
			get { return _companyId; }
			set { _companyId = value; }
		}
		public int? SinacorCompanyId
		{
			get { return _sinacorCompanyId; }
			set { _sinacorCompanyId = value; }
		}
		public List<Module> Modules
		{
			get { return _modules; }
			set { _modules = value; }
		}

        public Company()
        {
            _modules = new List<Module>();
        }

        public Company(string name, string legalRegistrationId, int companyId)
        {
            this.Name = name;
            this.LegalRegistrationId = legalRegistrationId;
            this.CompanyId = companyId;
        }

        public object Clone()
        {
            return (Company) MemberwiseClone();
        }
    }
}